﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Database;

namespace ATM
{
    public partial class frmMain : Form
    {
        public static string user = "";
        private ConnectionDB cnn;
        FactoryDatabase factory = new CreateDB(TypeDB.MSSQL);
        static login frmlogin;
        static manage frmmanage;
        static usercontrol frmuser;
        public static event loginfocus lgfocus = null;
        
        
        public string logincheck(string acc, string pwd, bool status)
        {

            

            string kqua ="fail";
            if (status.Equals(true))
            {
                DataTable a = new DataTable("admin");
                a = cnn.Query("select * from admin where acc = {0}", acc);

                if (a != null)
                {
                    if (a.Rows.Count != 0)
                    {
                        
                        DataRow b = a.Rows[0];
                        string account = b["acc"].ToString();
                        string password = b["pwd"].ToString();
                        if (acc.Equals(account) && pwd.Equals(password))
                        {   
                            kqua= "admin";
                        
                        }
                       
                    }
                    
                }

            }
            else
            {
                
                DataTable a = new DataTable("users");
                a = cnn.Query("select * from users where matk = {0}", acc);
                if (a != null)
                {
                    if (a.Rows.Count != 0)
                    {
                        DataRow b = a.Rows[0];
                        string account = b["matk"].ToString();
                        string password = b["mapin"].ToString();
                        if (acc.Equals(account) && pwd.Equals(password))
                        {
                            kqua = "user";


                            string enb = b["enb"].ToString();
                            if (enb == "False")
                            {
                                kqua = "khoa";
                            }
                        }
                        
                    }
                    
                }
                



            }

           

        return kqua;
        }
        public frmMain()
        {
            InitializeComponent();
        }

        private void dangNhapToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
            
        }
       
        private void frm_LoginSuccess(object sender, InfoLogin e)
        {
            // ở đây anh làm gì cũng được
            // Nó như 1 hàm bình thường trong form này thôi
            menulogout.Visible = true;
            frmmanage = new manage();
            frmuser = new usercontrol();
            string text = logincheck(e.user, e.pwd, e.status);
            
            if (text.Equals("admin") && e.status == true)
            {
                frmmanage.MdiParent = this;
                this.Height = 527;
                this.Width = 1140;
                this.Location = new Point(100, 100);
                frmlogin.Hide();
                frmmanage.Show();
               
            }
            else if (text.Equals("user") && e.status == false)
            {
                frmuser.MdiParent = this;
                this.Height = 527;
                this.Width = 1140;
                this.Location = new Point(100, 100);
                frmlogin.Hide();
                frmuser.Show();
                
                
            }
            else if (text == "khoa")
            {
                MessageBox.Show("Tài khoản của bạn đã bị khóa, vui lòng liên hệ với admin");

            }
            else if (text == "fail")
            {
                MessageBox.Show("Sai tên tài khoản hoặc mật khẩu!");

            }
         
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            cnn = factory.Create("A6E0J1PC7PNXIKK", "ATM");
            frmlogin = new login();
            frmlogin.MdiParent = this;
            frmlogin.LoginSuccess +=new LoginAccount(frm_LoginSuccess); // Cái chỗ này là đăng ký đó anh
            frmlogin.Show();        
            menulogout.Visible = false;
        }

        private void thoátChươngTrìnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
                            Application.Exit();
           
        }
        private void logout()
        {   
            DialogResult a = MessageBox.Show("Bạn chắc chắn muốn đăng xuất?","Logout?",MessageBoxButtons.OKCancel);
            if (a== DialogResult.OK)
	        {
                InfoLogin info = new InfoLogin();
                menulogout.Enabled = false;
		        frmmanage.Close();
                frmuser.Close();
                frmlogin.Show();
                if (lgfocus != null)
                {
                    lgfocus(this, info);
                }
                this.Height = 531;
                this.Width = 513;
                this.CenterToScreen();
	        }
            

        }

        private void adminToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.logout();
        }

        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult a = MessageBox.Show("Bạn chắc chắn muốn thoát?", "Exit?", MessageBoxButtons.OKCancel);
            if (a == DialogResult.Cancel)
            {
                e.Cancel = true;
                
            }
            
        }

        private void giớiThiệuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmabout fmabout = new frmabout();
            fmabout.ShowDialog();
        }

       
        
    }
}
